home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
-
- # $Id: avahi-daemon.in 1369 2007-01-05 22:43:03Z lennart $
-
- # This file is part of avahi.
- #
- # avahi is free software; you can redistribute it and/or modify it
- # under the terms of the GNU Lesser General Public License as
- # published by the Free Software Foundation; either version 2 of the
- # License, or (at your option) any later version.
- #
- # avahi is distributed in the hope that it will be useful, but WITHOUT
- # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
- # License for more details.
- #
- # You should have received a copy of the GNU Lesser General Public
- # License along with avahi; if not, write to the Free Software
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- # USA.
-
- #
- # avahi avahi daemon
- # Daemon for ZeroConf
- #
- # Authors: <sebastien.estienne@gmail.com>
- #
-
- DISABLE_TAG="/var/run/avahi-daemon/disabled-for-unicast-local"
-
- if [ -f /lib/lsb/init-functions ]
- then
- . /lib/lsb/init-functions
- else
- # int log_begin_message (char *message)
- log_begin_msg () {
- if [ -z "$1" ]; then
- return 1
- fi
- echo " * $@"
- }
-
- # int log_end_message (int exitstatus)
- log_end_msg () {
-
- # If no arguments were passed, return
- [ -z "$1" ] && return 1
-
- # Only do the fancy stuff if we have an appropriate terminal
- # and if /usr is already mounted
- TPUT=/usr/bin/tput
- EXPR=/usr/bin/expr
- if [ -x $TPUT ] && [ -x $EXPR ] && $TPUT hpa 60 >/dev/null 2>&1; then
- COLS=`$TPUT cols`
- if [ -n "$COLS" ]; then
- COL=`$EXPR $COLS - 7`
- else
- COL=73
- fi
- UP=`$TPUT cuu1`
- END=`$TPUT hpa $COL`
- START=`$TPUT hpa 0`
- RED=`$TPUT setaf 1`
- NORMAL=`$TPUT op`
- if [ $1 -eq 0 ]; then
- echo "$UP$END[ ok ]"
- else
- echo -e "$UP$START $RED*$NORMAL$END[${RED}fail${NORMAL}]"
- fi
- else
- if [ $1 -eq 0 ]; then
- echo " ...done."
- else
- echo " ...fail!"
- fi
- fi
- return $1
- }
-
- log_warning_msg () {
- if log_use_fancy_output; then
- YELLOW=`$TPUT setaf 3`
- NORMAL=`$TPUT op`
- echo "$YELLOW*$NORMAL $@"
- else
- echo "$@"
- fi
- }
-
- fi
-
- #set -e
-
- PATH=/sbin:/bin:/usr/sbin:/usr/bin
- DESC="Avahi mDNS/DNS-SD Daemon"
- NAME="avahi-daemon"
- DAEMON="/usr/sbin/$NAME"
- SCRIPTNAME=/etc/init.d/$NAME
-
- # Gracefully exit if the package has been removed.
- test -x $DAEMON || exit 0
-
- # don't start if /etc/default/avahi-daemon says so.
- AVAHI_DAEMON_START=1
- test -f /etc/default/avahi-daemon && . /etc/default/avahi-daemon
-
- if [ "$AVAHI_DAEMON_START" != "1" -a "$1" != "stop" ]; then
- log_warning_msg "Not starting $DESC $NAME, disabled via /etc/default/$NAME"
- exit 0
- fi
-
- #
- # Function that starts the daemon/service.
- #
- d_start() {
- modprobe capability >/dev/null 2>&1 || true
-
- $DAEMON -c && return 0
-
- if [ -e ${DISABLE_TAG} ]; then
- # Disabled because of the existance of an unicast .local domain
- log_warning_msg "avahi-daemon disabled because there is a unicast .local domain"
- exit 0;
- fi;
-
- if [ -s /etc/localtime ]; then
- if [ ! -d /etc/avahi/etc ]; then
- mkdir -p /etc/avahi/etc >/dev/null 2>&1
- fi
- cp -fp /etc/localtime /etc/avahi/etc >/dev/null 2>&1
- fi;
-
- $DAEMON -D
- }
-
- #
- # Function that stops the daemon/service.
- #
- d_stop() {
- $DAEMON -c && $DAEMON -k
- }
-
- #
- # Function that reload the config file for the daemon/service.
- #
- d_reload() {
- $DAEMON -c && $DAEMON -r
- }
-
- #
- # Function that check the status of the daemon/service.
- #
- d_status() {
- $DAEMON -c && echo "$DESC is running" || echo "$DESC is not running"
- }
-
- case "$1" in
- start)
- log_begin_msg "Starting $DESC: $NAME"
- d_start
- log_end_msg $?
- ;;
- stop)
- log_begin_msg "Stopping $DESC: $NAME"
- d_stop
- log_end_msg $?
- ;;
- reload)
- log_begin_msg "Reloading services for $DESC: $NAME"
- d_reload
- log_end_msg $?
- ;;
- restart|force-reload)
- log_begin_msg "Restarting $DESC: $NAME"
- $DAEMON -c && d_stop
- d_start
- log_end_msg $?
- ;;
- status)
- d_status
- ;;
- *)
- echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|reload}" >&2
- exit 1
- ;;
- esac
-
- exit 0
-